Cloud computing is a computing infrastructure for enabling ubiquitous access to shared pools of servers, storage, computer networks, applications and other data resources, which can be rapidly provisioned, often over the Internet.
A data resource in this context is any form of executable software or data structure, usually but not exclusively for providing a service (and hence may be referred to as a data or software service) for example a data analysis application, a data transformation application, a report generating application, a machine learning process, a spreadsheet or a database.
Some companies provide cloud computing services for registered customers, for example manufacturing and technology companies, to create, store, manage and execute their own data resources. Sometimes, these data resources may interact with other software resources, for example those provided by the cloud platform provider.
For example, an engine manufacturer may create and store a database relating to spare parts for the different models of engines it produces and services. The database may, for example, be a multi-dimensional relational database. The engine manufacturer may also create one or more data analysis applications for performing certain tasks on data held in the database, for example to analyse and/or transform the data in order to identify trends which may be useful for predicting when certain parts will fail and/or need replacing, and hence when to produce and deploy the spare parts.
A platform provider may enable its registered customers to create their own customised code for storage and execution on their platform. Customised code is any user-created code for storage and execution on a third-party data processing platform.
The customised code may require interaction with other data resources on the platform. For example, an engine manufacturer may wish to create a new data resource for storage and execution on the data processing platform which passes a query to, and receives a result from, another data resource on the data processing platform. The other data resource may be associated with the engine manufacturer or a different organisation.
A problem with allowing users to create their own customised code is that the code may not conform to the platform's own technical requirements or protocols, for example in terms of data format and security policies. Consequently, the customised code may interfere with the normal operation of the data processing platform, slowing it down, and/or affecting other data resources and/or potentially corrupting other data resources on the data processing platform.
One way of permitting external users to create their own customised code is to for the platform provider to work alongside the external user, which has obvious practical limitations in terms of human resources and time. Another method is to provide users with a set of software guidance tools or documentation to assist them in creating code suitable for the platform, which tends not to be foolproof. When the customised code is prepared, the user usually needs to upload their code to a server of the platform in a separate operation or to send the code on a CD or DVD to the platform provider for uploading to the server at their end.